
main.o:     file format elf32-i386

Disassembly of section .text:

00000000 <lba28_prolog>:
       0:	55                   	push   %ebp
       1:	89 e5                	mov    %esp,%ebp
       3:	83 ec 18             	sub    $0x18,%esp
       6:	eb 0d                	jmp    15 <lba28_prolog+0x15>
       8:	83 ec 0c             	sub    $0xc,%esp
       b:	6a 00                	push   $0x0
       d:	e8 fc ff ff ff       	call   e <lba28_prolog+0xe>
      12:	83 c4 10             	add    $0x10,%esp
      15:	8b 55 0c             	mov    0xc(%ebp),%edx
      18:	89 d0                	mov    %edx,%eax
      1a:	c1 e0 04             	shl    $0x4,%eax
      1d:	01 d0                	add    %edx,%eax
      1f:	c1 e0 02             	shl    $0x2,%eax
      22:	01 d0                	add    %edx,%eax
      24:	c1 e0 03             	shl    $0x3,%eax
      27:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
      2d:	98                   	cwtl   
      2e:	05 06 02 00 00       	add    $0x206,%eax
      33:	83 ec 0c             	sub    $0xc,%esp
      36:	50                   	push   %eax
      37:	e8 fc ff ff ff       	call   38 <lba28_prolog+0x38>
      3c:	83 c4 10             	add    $0x10,%esp
      3f:	25 80 00 00 00       	and    $0x80,%eax
      44:	85 c0                	test   %eax,%eax
      46:	75 c0                	jne    8 <lba28_prolog+0x8>
      48:	8b 55 0c             	mov    0xc(%ebp),%edx
      4b:	89 d0                	mov    %edx,%eax
      4d:	c1 e0 04             	shl    $0x4,%eax
      50:	01 d0                	add    %edx,%eax
      52:	c1 e0 02             	shl    $0x2,%eax
      55:	01 d0                	add    %edx,%eax
      57:	c1 e0 03             	shl    $0x3,%eax
      5a:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
      60:	98                   	cwtl   
      61:	40                   	inc    %eax
      62:	83 ec 08             	sub    $0x8,%esp
      65:	6a 00                	push   $0x0
      67:	50                   	push   %eax
      68:	e8 fc ff ff ff       	call   69 <lba28_prolog+0x69>
      6d:	83 c4 10             	add    $0x10,%esp
      70:	8b 55 0c             	mov    0xc(%ebp),%edx
      73:	89 d0                	mov    %edx,%eax
      75:	c1 e0 04             	shl    $0x4,%eax
      78:	01 d0                	add    %edx,%eax
      7a:	c1 e0 02             	shl    $0x2,%eax
      7d:	01 d0                	add    %edx,%eax
      7f:	c1 e0 03             	shl    $0x3,%eax
      82:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
      88:	98                   	cwtl   
      89:	83 c0 02             	add    $0x2,%eax
      8c:	83 ec 08             	sub    $0x8,%esp
      8f:	ff 75 10             	pushl  0x10(%ebp)
      92:	50                   	push   %eax
      93:	e8 fc ff ff ff       	call   94 <lba28_prolog+0x94>
      98:	83 c4 10             	add    $0x10,%esp
      9b:	8b 45 08             	mov    0x8(%ebp),%eax
      9e:	b9 00 00 00 00       	mov    $0x0,%ecx
      a3:	88 c1                	mov    %al,%cl
      a5:	8b 55 0c             	mov    0xc(%ebp),%edx
      a8:	89 d0                	mov    %edx,%eax
      aa:	c1 e0 04             	shl    $0x4,%eax
      ad:	01 d0                	add    %edx,%eax
      af:	c1 e0 02             	shl    $0x2,%eax
      b2:	01 d0                	add    %edx,%eax
      b4:	c1 e0 03             	shl    $0x3,%eax
      b7:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
      bd:	98                   	cwtl   
      be:	83 c0 03             	add    $0x3,%eax
      c1:	83 ec 08             	sub    $0x8,%esp
      c4:	51                   	push   %ecx
      c5:	50                   	push   %eax
      c6:	e8 fc ff ff ff       	call   c7 <lba28_prolog+0xc7>
      cb:	83 c4 10             	add    $0x10,%esp
      ce:	8b 45 08             	mov    0x8(%ebp),%eax
      d1:	c1 f8 08             	sar    $0x8,%eax
      d4:	b9 00 00 00 00       	mov    $0x0,%ecx
      d9:	88 c1                	mov    %al,%cl
      db:	8b 55 0c             	mov    0xc(%ebp),%edx
      de:	89 d0                	mov    %edx,%eax
      e0:	c1 e0 04             	shl    $0x4,%eax
      e3:	01 d0                	add    %edx,%eax
      e5:	c1 e0 02             	shl    $0x2,%eax
      e8:	01 d0                	add    %edx,%eax
      ea:	c1 e0 03             	shl    $0x3,%eax
      ed:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
      f3:	98                   	cwtl   
      f4:	83 c0 04             	add    $0x4,%eax
      f7:	83 ec 08             	sub    $0x8,%esp
      fa:	51                   	push   %ecx
      fb:	50                   	push   %eax
      fc:	e8 fc ff ff ff       	call   fd <lba28_prolog+0xfd>
     101:	83 c4 10             	add    $0x10,%esp
     104:	8b 45 08             	mov    0x8(%ebp),%eax
     107:	c1 f8 10             	sar    $0x10,%eax
     10a:	b9 00 00 00 00       	mov    $0x0,%ecx
     10f:	88 c1                	mov    %al,%cl
     111:	8b 55 0c             	mov    0xc(%ebp),%edx
     114:	89 d0                	mov    %edx,%eax
     116:	c1 e0 04             	shl    $0x4,%eax
     119:	01 d0                	add    %edx,%eax
     11b:	c1 e0 02             	shl    $0x2,%eax
     11e:	01 d0                	add    %edx,%eax
     120:	c1 e0 03             	shl    $0x3,%eax
     123:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     129:	98                   	cwtl   
     12a:	83 c0 05             	add    $0x5,%eax
     12d:	83 ec 08             	sub    $0x8,%esp
     130:	51                   	push   %ecx
     131:	50                   	push   %eax
     132:	e8 fc ff ff ff       	call   133 <lba28_prolog+0x133>
     137:	83 c4 10             	add    $0x10,%esp
     13a:	8b 55 0c             	mov    0xc(%ebp),%edx
     13d:	89 d0                	mov    %edx,%eax
     13f:	c1 e0 04             	shl    $0x4,%eax
     142:	01 d0                	add    %edx,%eax
     144:	c1 e0 02             	shl    $0x2,%eax
     147:	01 d0                	add    %edx,%eax
     149:	c1 e0 03             	shl    $0x3,%eax
     14c:	66 8b 80 06 00 00 00 	mov    0x6(%eax),%ax
     153:	98                   	cwtl   
     154:	c1 e0 04             	shl    $0x4,%eax
     157:	88 c2                	mov    %al,%dl
     159:	b0 e0                	mov    $0xe0,%al
     15b:	09 c2                	or     %eax,%edx
     15d:	8b 45 08             	mov    0x8(%ebp),%eax
     160:	c1 f8 18             	sar    $0x18,%eax
     163:	09 d0                	or     %edx,%eax
     165:	88 45 ff             	mov    %al,0xffffffff(%ebp)
     168:	b9 00 00 00 00       	mov    $0x0,%ecx
     16d:	8a 4d ff             	mov    0xffffffff(%ebp),%cl
     170:	8b 55 0c             	mov    0xc(%ebp),%edx
     173:	89 d0                	mov    %edx,%eax
     175:	c1 e0 04             	shl    $0x4,%eax
     178:	01 d0                	add    %edx,%eax
     17a:	c1 e0 02             	shl    $0x2,%eax
     17d:	01 d0                	add    %edx,%eax
     17f:	c1 e0 03             	shl    $0x3,%eax
     182:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     188:	98                   	cwtl   
     189:	83 c0 06             	add    $0x6,%eax
     18c:	83 ec 08             	sub    $0x8,%esp
     18f:	51                   	push   %ecx
     190:	50                   	push   %eax
     191:	e8 fc ff ff ff       	call   192 <lba28_prolog+0x192>
     196:	83 c4 10             	add    $0x10,%esp
     199:	c9                   	leave  
     19a:	c3                   	ret    

0000019b <lba28_ReadSector>:
     19b:	55                   	push   %ebp
     19c:	89 e5                	mov    %esp,%ebp
     19e:	83 ec 18             	sub    $0x18,%esp
     1a1:	83 ec 04             	sub    $0x4,%esp
     1a4:	ff 75 0c             	pushl  0xc(%ebp)
     1a7:	ff 75 08             	pushl  0x8(%ebp)
     1aa:	ff 75 10             	pushl  0x10(%ebp)
     1ad:	e8 fc ff ff ff       	call   1ae <lba28_ReadSector+0x13>
     1b2:	83 c4 10             	add    $0x10,%esp
     1b5:	8b 55 08             	mov    0x8(%ebp),%edx
     1b8:	89 d0                	mov    %edx,%eax
     1ba:	c1 e0 04             	shl    $0x4,%eax
     1bd:	01 d0                	add    %edx,%eax
     1bf:	c1 e0 02             	shl    $0x2,%eax
     1c2:	01 d0                	add    %edx,%eax
     1c4:	c1 e0 03             	shl    $0x3,%eax
     1c7:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     1cd:	98                   	cwtl   
     1ce:	83 c0 07             	add    $0x7,%eax
     1d1:	83 ec 08             	sub    $0x8,%esp
     1d4:	6a 20                	push   $0x20
     1d6:	50                   	push   %eax
     1d7:	e8 fc ff ff ff       	call   1d8 <lba28_ReadSector+0x3d>
     1dc:	83 c4 10             	add    $0x10,%esp
     1df:	eb 0d                	jmp    1ee <lba28_ReadSector+0x53>
     1e1:	83 ec 0c             	sub    $0xc,%esp
     1e4:	6a 00                	push   $0x0
     1e6:	e8 fc ff ff ff       	call   1e7 <lba28_ReadSector+0x4c>
     1eb:	83 c4 10             	add    $0x10,%esp
     1ee:	8b 55 08             	mov    0x8(%ebp),%edx
     1f1:	89 d0                	mov    %edx,%eax
     1f3:	c1 e0 04             	shl    $0x4,%eax
     1f6:	01 d0                	add    %edx,%eax
     1f8:	c1 e0 02             	shl    $0x2,%eax
     1fb:	01 d0                	add    %edx,%eax
     1fd:	c1 e0 03             	shl    $0x3,%eax
     200:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     206:	98                   	cwtl   
     207:	83 c0 07             	add    $0x7,%eax
     20a:	83 ec 0c             	sub    $0xc,%esp
     20d:	50                   	push   %eax
     20e:	e8 fc ff ff ff       	call   20f <lba28_ReadSector+0x74>
     213:	83 c4 10             	add    $0x10,%esp
     216:	25 80 00 00 00       	and    $0x80,%eax
     21b:	85 c0                	test   %eax,%eax
     21d:	75 c2                	jne    1e1 <lba28_ReadSector+0x46>
     21f:	8b 55 08             	mov    0x8(%ebp),%edx
     222:	89 d0                	mov    %edx,%eax
     224:	c1 e0 04             	shl    $0x4,%eax
     227:	01 d0                	add    %edx,%eax
     229:	c1 e0 02             	shl    $0x2,%eax
     22c:	01 d0                	add    %edx,%eax
     22e:	c1 e0 03             	shl    $0x3,%eax
     231:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     237:	98                   	cwtl   
     238:	05 06 02 00 00       	add    $0x206,%eax
     23d:	83 ec 0c             	sub    $0xc,%esp
     240:	50                   	push   %eax
     241:	e8 fc ff ff ff       	call   242 <lba28_ReadSector+0xa7>
     246:	83 c4 10             	add    $0x10,%esp
     249:	83 e0 01             	and    $0x1,%eax
     24c:	88 45 f6             	mov    %al,0xfffffff6(%ebp)
     24f:	8b 55 08             	mov    0x8(%ebp),%edx
     252:	89 d0                	mov    %edx,%eax
     254:	c1 e0 04             	shl    $0x4,%eax
     257:	01 d0                	add    %edx,%eax
     259:	c1 e0 02             	shl    $0x2,%eax
     25c:	01 d0                	add    %edx,%eax
     25e:	c1 e0 03             	shl    $0x3,%eax
     261:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     267:	98                   	cwtl   
     268:	40                   	inc    %eax
     269:	83 ec 0c             	sub    $0xc,%esp
     26c:	50                   	push   %eax
     26d:	e8 fc ff ff ff       	call   26e <lba28_ReadSector+0xd3>
     272:	83 c4 10             	add    $0x10,%esp
     275:	88 45 f7             	mov    %al,0xfffffff7(%ebp)
     278:	80 7d f6 00          	cmpb   $0x0,0xfffffff6(%ebp)
     27c:	74 19                	je     297 <lba28_ReadSector+0xfc>
     27e:	c7 45 ec ff ff ff ff 	movl   $0xffffffff,0xffffffec(%ebp)
     285:	e9 dc 00 00 00       	jmp    366 <lba28_ReadSector+0x1cb>
     28a:	83 ec 0c             	sub    $0xc,%esp
     28d:	6a 00                	push   $0x0
     28f:	e8 fc ff ff ff       	call   290 <lba28_ReadSector+0xf5>
     294:	83 c4 10             	add    $0x10,%esp
     297:	8b 55 08             	mov    0x8(%ebp),%edx
     29a:	89 d0                	mov    %edx,%eax
     29c:	c1 e0 04             	shl    $0x4,%eax
     29f:	01 d0                	add    %edx,%eax
     2a1:	c1 e0 02             	shl    $0x2,%eax
     2a4:	01 d0                	add    %edx,%eax
     2a6:	c1 e0 03             	shl    $0x3,%eax
     2a9:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     2af:	98                   	cwtl   
     2b0:	05 06 02 00 00       	add    $0x206,%eax
     2b5:	83 ec 0c             	sub    $0xc,%esp
     2b8:	50                   	push   %eax
     2b9:	e8 fc ff ff ff       	call   2ba <lba28_ReadSector+0x11f>
     2be:	83 c4 10             	add    $0x10,%esp
     2c1:	83 e0 08             	and    $0x8,%eax
     2c4:	85 c0                	test   %eax,%eax
     2c6:	74 c2                	je     28a <lba28_ReadSector+0xef>
     2c8:	c7 45 f8 00 00 00 00 	movl   $0x0,0xfffffff8(%ebp)
     2cf:	eb 41                	jmp    312 <lba28_ReadSector+0x177>
     2d1:	8b 55 08             	mov    0x8(%ebp),%edx
     2d4:	89 d0                	mov    %edx,%eax
     2d6:	c1 e0 04             	shl    $0x4,%eax
     2d9:	01 d0                	add    %edx,%eax
     2db:	c1 e0 02             	shl    $0x2,%eax
     2de:	01 d0                	add    %edx,%eax
     2e0:	c1 e0 03             	shl    $0x3,%eax
     2e3:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     2e9:	98                   	cwtl   
     2ea:	83 ec 0c             	sub    $0xc,%esp
     2ed:	50                   	push   %eax
     2ee:	e8 fc ff ff ff       	call   2ef <lba28_ReadSector+0x154>
     2f3:	83 c4 10             	add    $0x10,%esp
     2f6:	66 89 45 fe          	mov    %ax,0xfffffffe(%ebp)
     2fa:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
     2fd:	03 45 14             	add    0x14(%ebp),%eax
     300:	89 c2                	mov    %eax,%edx
     302:	66 8b 45 fe          	mov    0xfffffffe(%ebp),%ax
     306:	66 89 02             	mov    %ax,(%edx)
     309:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
     30c:	83 c0 02             	add    $0x2,%eax
     30f:	89 45 f8             	mov    %eax,0xfffffff8(%ebp)
     312:	8b 55 08             	mov    0x8(%ebp),%edx
     315:	89 d0                	mov    %edx,%eax
     317:	c1 e0 04             	shl    $0x4,%eax
     31a:	01 d0                	add    %edx,%eax
     31c:	c1 e0 02             	shl    $0x2,%eax
     31f:	01 d0                	add    %edx,%eax
     321:	c1 e0 03             	shl    $0x3,%eax
     324:	66 8b 80 12 00 00 00 	mov    0x12(%eax),%ax
     32b:	25 ff ff 00 00       	and    $0xffff,%eax
     330:	0f af 45 0c          	imul   0xc(%ebp),%eax
     334:	3b 45 f8             	cmp    0xfffffff8(%ebp),%eax
     337:	7f 98                	jg     2d1 <lba28_ReadSector+0x136>
     339:	8b 55 08             	mov    0x8(%ebp),%edx
     33c:	89 d0                	mov    %edx,%eax
     33e:	c1 e0 04             	shl    $0x4,%eax
     341:	01 d0                	add    %edx,%eax
     343:	c1 e0 02             	shl    $0x2,%eax
     346:	01 d0                	add    %edx,%eax
     348:	c1 e0 03             	shl    $0x3,%eax
     34b:	66 8b 80 12 00 00 00 	mov    0x12(%eax),%ax
     352:	25 ff ff 00 00       	and    $0xffff,%eax
     357:	8b 55 f8             	mov    0xfffffff8(%ebp),%edx
     35a:	89 c1                	mov    %eax,%ecx
     35c:	89 d0                	mov    %edx,%eax
     35e:	c1 fa 1f             	sar    $0x1f,%edx
     361:	f7 f9                	idiv   %ecx
     363:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
     366:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
     369:	c9                   	leave  
     36a:	c3                   	ret    

0000036b <lba28_WriteSector>:
     36b:	55                   	push   %ebp
     36c:	89 e5                	mov    %esp,%ebp
     36e:	83 ec 18             	sub    $0x18,%esp
     371:	83 ec 04             	sub    $0x4,%esp
     374:	ff 75 0c             	pushl  0xc(%ebp)
     377:	ff 75 08             	pushl  0x8(%ebp)
     37a:	ff 75 10             	pushl  0x10(%ebp)
     37d:	e8 fc ff ff ff       	call   37e <lba28_WriteSector+0x13>
     382:	83 c4 10             	add    $0x10,%esp
     385:	8b 55 08             	mov    0x8(%ebp),%edx
     388:	89 d0                	mov    %edx,%eax
     38a:	c1 e0 04             	shl    $0x4,%eax
     38d:	01 d0                	add    %edx,%eax
     38f:	c1 e0 02             	shl    $0x2,%eax
     392:	01 d0                	add    %edx,%eax
     394:	c1 e0 03             	shl    $0x3,%eax
     397:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     39d:	98                   	cwtl   
     39e:	83 c0 07             	add    $0x7,%eax
     3a1:	83 ec 08             	sub    $0x8,%esp
     3a4:	6a 30                	push   $0x30
     3a6:	50                   	push   %eax
     3a7:	e8 fc ff ff ff       	call   3a8 <lba28_WriteSector+0x3d>
     3ac:	83 c4 10             	add    $0x10,%esp
     3af:	8b 55 08             	mov    0x8(%ebp),%edx
     3b2:	89 d0                	mov    %edx,%eax
     3b4:	c1 e0 04             	shl    $0x4,%eax
     3b7:	01 d0                	add    %edx,%eax
     3b9:	c1 e0 02             	shl    $0x2,%eax
     3bc:	01 d0                	add    %edx,%eax
     3be:	c1 e0 03             	shl    $0x3,%eax
     3c1:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     3c7:	98                   	cwtl   
     3c8:	05 06 02 00 00       	add    $0x206,%eax
     3cd:	83 ec 0c             	sub    $0xc,%esp
     3d0:	50                   	push   %eax
     3d1:	e8 fc ff ff ff       	call   3d2 <lba28_WriteSector+0x67>
     3d6:	83 c4 10             	add    $0x10,%esp
     3d9:	83 e0 01             	and    $0x1,%eax
     3dc:	88 45 fa             	mov    %al,0xfffffffa(%ebp)
     3df:	8b 55 08             	mov    0x8(%ebp),%edx
     3e2:	89 d0                	mov    %edx,%eax
     3e4:	c1 e0 04             	shl    $0x4,%eax
     3e7:	01 d0                	add    %edx,%eax
     3e9:	c1 e0 02             	shl    $0x2,%eax
     3ec:	01 d0                	add    %edx,%eax
     3ee:	c1 e0 03             	shl    $0x3,%eax
     3f1:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     3f7:	98                   	cwtl   
     3f8:	40                   	inc    %eax
     3f9:	83 ec 0c             	sub    $0xc,%esp
     3fc:	50                   	push   %eax
     3fd:	e8 fc ff ff ff       	call   3fe <lba28_WriteSector+0x93>
     402:	83 c4 10             	add    $0x10,%esp
     405:	88 45 fb             	mov    %al,0xfffffffb(%ebp)
     408:	80 7d fa 00          	cmpb   $0x0,0xfffffffa(%ebp)
     40c:	74 19                	je     427 <lba28_WriteSector+0xbc>
     40e:	c7 45 ec ff ff ff ff 	movl   $0xffffffff,0xffffffec(%ebp)
     415:	e9 db 00 00 00       	jmp    4f5 <lba28_WriteSector+0x18a>
     41a:	83 ec 0c             	sub    $0xc,%esp
     41d:	6a 00                	push   $0x0
     41f:	e8 fc ff ff ff       	call   420 <lba28_WriteSector+0xb5>
     424:	83 c4 10             	add    $0x10,%esp
     427:	8b 55 08             	mov    0x8(%ebp),%edx
     42a:	89 d0                	mov    %edx,%eax
     42c:	c1 e0 04             	shl    $0x4,%eax
     42f:	01 d0                	add    %edx,%eax
     431:	c1 e0 02             	shl    $0x2,%eax
     434:	01 d0                	add    %edx,%eax
     436:	c1 e0 03             	shl    $0x3,%eax
     439:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     43f:	98                   	cwtl   
     440:	05 06 02 00 00       	add    $0x206,%eax
     445:	83 ec 0c             	sub    $0xc,%esp
     448:	50                   	push   %eax
     449:	e8 fc ff ff ff       	call   44a <lba28_WriteSector+0xdf>
     44e:	83 c4 10             	add    $0x10,%esp
     451:	83 e0 08             	and    $0x8,%eax
     454:	85 c0                	test   %eax,%eax
     456:	74 c2                	je     41a <lba28_WriteSector+0xaf>
     458:	c7 45 fc 00 00 00 00 	movl   $0x0,0xfffffffc(%ebp)
     45f:	eb 40                	jmp    4a1 <lba28_WriteSector+0x136>
     461:	8b 45 fc             	mov    0xfffffffc(%ebp),%eax
     464:	03 45 14             	add    0x14(%ebp),%eax
     467:	66 8b 00             	mov    (%eax),%ax
     46a:	89 c1                	mov    %eax,%ecx
     46c:	81 e1 ff ff 00 00    	and    $0xffff,%ecx
     472:	8b 55 08             	mov    0x8(%ebp),%edx
     475:	89 d0                	mov    %edx,%eax
     477:	c1 e0 04             	shl    $0x4,%eax
     47a:	01 d0                	add    %edx,%eax
     47c:	c1 e0 02             	shl    $0x2,%eax
     47f:	01 d0                	add    %edx,%eax
     481:	c1 e0 03             	shl    $0x3,%eax
     484:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     48a:	98                   	cwtl   
     48b:	83 ec 08             	sub    $0x8,%esp
     48e:	51                   	push   %ecx
     48f:	50                   	push   %eax
     490:	e8 fc ff ff ff       	call   491 <lba28_WriteSector+0x126>
     495:	83 c4 10             	add    $0x10,%esp
     498:	8b 45 fc             	mov    0xfffffffc(%ebp),%eax
     49b:	83 c0 02             	add    $0x2,%eax
     49e:	89 45 fc             	mov    %eax,0xfffffffc(%ebp)
     4a1:	8b 55 08             	mov    0x8(%ebp),%edx
     4a4:	89 d0                	mov    %edx,%eax
     4a6:	c1 e0 04             	shl    $0x4,%eax
     4a9:	01 d0                	add    %edx,%eax
     4ab:	c1 e0 02             	shl    $0x2,%eax
     4ae:	01 d0                	add    %edx,%eax
     4b0:	c1 e0 03             	shl    $0x3,%eax
     4b3:	66 8b 80 12 00 00 00 	mov    0x12(%eax),%ax
     4ba:	25 ff ff 00 00       	and    $0xffff,%eax
     4bf:	0f af 45 0c          	imul   0xc(%ebp),%eax
     4c3:	3b 45 fc             	cmp    0xfffffffc(%ebp),%eax
     4c6:	7f 99                	jg     461 <lba28_WriteSector+0xf6>
     4c8:	8b 55 08             	mov    0x8(%ebp),%edx
     4cb:	89 d0                	mov    %edx,%eax
     4cd:	c1 e0 04             	shl    $0x4,%eax
     4d0:	01 d0                	add    %edx,%eax
     4d2:	c1 e0 02             	shl    $0x2,%eax
     4d5:	01 d0                	add    %edx,%eax
     4d7:	c1 e0 03             	shl    $0x3,%eax
     4da:	66 8b 80 12 00 00 00 	mov    0x12(%eax),%ax
     4e1:	25 ff ff 00 00       	and    $0xffff,%eax
     4e6:	8b 55 fc             	mov    0xfffffffc(%ebp),%edx
     4e9:	89 c1                	mov    %eax,%ecx
     4eb:	89 d0                	mov    %edx,%eax
     4ed:	c1 fa 1f             	sar    $0x1f,%edx
     4f0:	f7 f9                	idiv   %ecx
     4f2:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
     4f5:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
     4f8:	c9                   	leave  
     4f9:	c3                   	ret    

000004fa <identify_device>:
     4fa:	55                   	push   %ebp
     4fb:	89 e5                	mov    %esp,%ebp
     4fd:	53                   	push   %ebx
     4fe:	81 ec 14 02 00 00    	sub    $0x214,%esp
     504:	8b 45 10             	mov    0x10(%ebp),%eax
     507:	0c e0                	or     $0xe0,%al
     509:	8b 55 0c             	mov    0xc(%ebp),%edx
     50c:	83 c2 06             	add    $0x6,%edx
     50f:	83 ec 08             	sub    $0x8,%esp
     512:	50                   	push   %eax
     513:	52                   	push   %edx
     514:	e8 fc ff ff ff       	call   515 <identify_device+0x1b>
     519:	83 c4 10             	add    $0x10,%esp
     51c:	8b 45 0c             	mov    0xc(%ebp),%eax
     51f:	83 c0 07             	add    $0x7,%eax
     522:	83 ec 08             	sub    $0x8,%esp
     525:	68 ec 00 00 00       	push   $0xec
     52a:	50                   	push   %eax
     52b:	e8 fc ff ff ff       	call   52c <identify_device+0x32>
     530:	83 c4 10             	add    $0x10,%esp
     533:	8b 45 0c             	mov    0xc(%ebp),%eax
     536:	05 06 02 00 00       	add    $0x206,%eax
     53b:	83 ec 0c             	sub    $0xc,%esp
     53e:	50                   	push   %eax
     53f:	e8 fc ff ff ff       	call   540 <identify_device+0x46>
     544:	83 c4 10             	add    $0x10,%esp
     547:	25 80 00 00 00       	and    $0x80,%eax
     54c:	85 c0                	test   %eax,%eax
     54e:	75 e3                	jne    533 <identify_device+0x39>
     550:	8b 45 0c             	mov    0xc(%ebp),%eax
     553:	83 c0 07             	add    $0x7,%eax
     556:	83 ec 0c             	sub    $0xc,%esp
     559:	50                   	push   %eax
     55a:	e8 fc ff ff ff       	call   55b <identify_device+0x61>
     55f:	83 c4 10             	add    $0x10,%esp
     562:	88 45 f3             	mov    %al,0xfffffff3(%ebp)
     565:	b8 00 00 00 00       	mov    $0x0,%eax
     56a:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
     56d:	83 e0 01             	and    $0x1,%eax
     570:	84 c0                	test   %al,%al
     572:	75 70                	jne    5e4 <identify_device+0xea>
     574:	8b 45 0c             	mov    0xc(%ebp),%eax
     577:	83 c0 07             	add    $0x7,%eax
     57a:	83 ec 0c             	sub    $0xc,%esp
     57d:	50                   	push   %eax
     57e:	e8 fc ff ff ff       	call   57f <identify_device+0x85>
     583:	83 c4 10             	add    $0x10,%esp
     586:	83 e0 08             	and    $0x8,%eax
     589:	85 c0                	test   %eax,%eax
     58b:	74 39                	je     5c6 <identify_device+0xcc>
     58d:	8d 85 f0 fd ff ff    	lea    0xfffffdf0(%ebp),%eax
     593:	89 45 f8             	mov    %eax,0xfffffff8(%ebp)
     596:	c7 45 f4 00 00 00 00 	movl   $0x0,0xfffffff4(%ebp)
     59d:	eb 1e                	jmp    5bd <identify_device+0xc3>
     59f:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
     5a2:	01 c0                	add    %eax,%eax
     5a4:	89 c3                	mov    %eax,%ebx
     5a6:	03 5d f8             	add    0xfffffff8(%ebp),%ebx
     5a9:	83 ec 0c             	sub    $0xc,%esp
     5ac:	ff 75 0c             	pushl  0xc(%ebp)
     5af:	e8 fc ff ff ff       	call   5b0 <identify_device+0xb6>
     5b4:	83 c4 10             	add    $0x10,%esp
     5b7:	66 89 03             	mov    %ax,(%ebx)
     5ba:	ff 45 f4             	incl   0xfffffff4(%ebp)
     5bd:	81 7d f4 fe 00 00 00 	cmpl   $0xfe,0xfffffff4(%ebp)
     5c4:	7e d9                	jle    59f <identify_device+0xa5>
     5c6:	8b 4d 08             	mov    0x8(%ebp),%ecx
     5c9:	8d 95 f0 fd ff ff    	lea    0xfffffdf0(%ebp),%edx
     5cf:	b8 00 02 00 00       	mov    $0x200,%eax
     5d4:	83 ec 04             	sub    $0x4,%esp
     5d7:	50                   	push   %eax
     5d8:	52                   	push   %edx
     5d9:	51                   	push   %ecx
     5da:	e8 fc ff ff ff       	call   5db <identify_device+0xe1>
     5df:	83 c4 10             	add    $0x10,%esp
     5e2:	eb 02                	jmp    5e6 <identify_device+0xec>
     5e4:	eb 03                	jmp    5e9 <identify_device+0xef>
     5e6:	8b 45 08             	mov    0x8(%ebp),%eax
     5e9:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
     5ec:	c9                   	leave  
     5ed:	c2 04 00             	ret    $0x4

000005f0 <DetectDrives>:
     5f0:	55                   	push   %ebp
     5f1:	89 e5                	mov    %esp,%ebp
     5f3:	81 ec 48 04 00 00    	sub    $0x448,%esp
     5f9:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
     600:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
     607:	c7 45 e4 00 00 00 00 	movl   $0x0,0xffffffe4(%ebp)
     60e:	e9 b7 01 00 00       	jmp    7ca <DetectDrives+0x1da>
     613:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
     61a:	e9 9e 01 00 00       	jmp    7bd <DetectDrives+0x1cd>
     61f:	c7 45 e8 00 00 00 00 	movl   $0x0,0xffffffe8(%ebp)
     626:	e9 85 01 00 00       	jmp    7b0 <DetectDrives+0x1c0>
     62b:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
     62e:	c1 e0 04             	shl    $0x4,%eax
     631:	89 c2                	mov    %eax,%edx
     633:	80 ca a0             	or     $0xa0,%dl
     636:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
     639:	c1 e0 04             	shl    $0x4,%eax
     63c:	89 d1                	mov    %edx,%ecx
     63e:	09 c1                	or     %eax,%ecx
     640:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
     643:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
     646:	01 c0                	add    %eax,%eax
     648:	01 d0                	add    %edx,%eax
     64a:	66 8b 84 00 00 00 00 	mov    0x0(%eax,%eax,1),%ax
     651:	00 
     652:	25 ff ff 00 00       	and    $0xffff,%eax
     657:	83 c0 06             	add    $0x6,%eax
     65a:	83 ec 08             	sub    $0x8,%esp
     65d:	51                   	push   %ecx
     65e:	50                   	push   %eax
     65f:	e8 fc ff ff ff       	call   660 <DetectDrives+0x70>
     664:	83 c4 10             	add    $0x10,%esp
     667:	83 ec 08             	sub    $0x8,%esp
     66a:	6a 00                	push   $0x0
     66c:	68 eb 00 00 00       	push   $0xeb
     671:	e8 fc ff ff ff       	call   672 <DetectDrives+0x82>
     676:	83 c4 10             	add    $0x10,%esp
     679:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
     67c:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
     67f:	01 c0                	add    %eax,%eax
     681:	01 d0                	add    %edx,%eax
     683:	66 8b 84 00 00 00 00 	mov    0x0(%eax,%eax,1),%ax
     68a:	00 
     68b:	25 ff ff 00 00       	and    $0xffff,%eax
     690:	83 c0 07             	add    $0x7,%eax
     693:	83 ec 0c             	sub    $0xc,%esp
     696:	50                   	push   %eax
     697:	e8 fc ff ff ff       	call   698 <DetectDrives+0xa8>
     69c:	83 c4 10             	add    $0x10,%esp
     69f:	25 ff 00 00 00       	and    $0xff,%eax
     6a4:	83 e0 71             	and    $0x71,%eax
     6a7:	83 f8 50             	cmp    $0x50,%eax
     6aa:	0f 85 fd 00 00 00    	jne    7ad <DetectDrives+0x1bd>
     6b0:	c7 85 b8 fd ff ff 01 	movl   $0x1,0xfffffdb8(%ebp)
     6b7:	00 00 00 
     6ba:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
     6bd:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
     6c0:	01 c0                	add    %eax,%eax
     6c2:	01 d0                	add    %edx,%eax
     6c4:	66 8b 84 00 00 00 00 	mov    0x0(%eax,%eax,1),%ax
     6cb:	00 
     6cc:	66 89 85 bc fd ff ff 	mov    %ax,0xfffffdbc(%ebp)
     6d3:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
     6d6:	66 89 85 be fd ff ff 	mov    %ax,0xfffffdbe(%ebp)
     6dd:	66 8b 85 be fd ff ff 	mov    0xfffffdbe(%ebp),%ax
     6e4:	0f bf d0             	movswl %ax,%edx
     6e7:	8b 85 bc fd ff ff    	mov    0xfffffdbc(%ebp),%eax
     6ed:	98                   	cwtl   
     6ee:	8d 8d b8 fb ff ff    	lea    0xfffffbb8(%ebp),%ecx
     6f4:	83 ec 04             	sub    $0x4,%esp
     6f7:	52                   	push   %edx
     6f8:	50                   	push   %eax
     6f9:	51                   	push   %ecx
     6fa:	e8 fc ff ff ff       	call   6fb <DetectDrives+0x10b>
     6ff:	83 c4 0c             	add    $0xc,%esp
     702:	8d 8d c0 fd ff ff    	lea    0xfffffdc0(%ebp),%ecx
     708:	8d 95 b8 fb ff ff    	lea    0xfffffbb8(%ebp),%edx
     70e:	b8 00 02 00 00       	mov    $0x200,%eax
     713:	83 ec 04             	sub    $0x4,%esp
     716:	50                   	push   %eax
     717:	52                   	push   %edx
     718:	51                   	push   %ecx
     719:	e8 fc ff ff ff       	call   71a <DetectDrives+0x12a>
     71e:	83 c4 10             	add    $0x10,%esp
     721:	83 ec 08             	sub    $0x8,%esp
     724:	68 00 00 00 00       	push   $0x0
     729:	8d 85 b8 fd ff ff    	lea    0xfffffdb8(%ebp),%eax
     72f:	05 08 02 00 00       	add    $0x208,%eax
     734:	50                   	push   %eax
     735:	e8 fc ff ff ff       	call   736 <DetectDrives+0x146>
     73a:	83 c4 10             	add    $0x10,%esp
     73d:	c7 45 f4 00 00 00 00 	movl   $0x0,0xfffffff4(%ebp)
     744:	eb 1b                	jmp    761 <DetectDrives+0x171>
     746:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
     749:	8a 44 05 c0          	mov    0xffffffc0(%ebp,%eax,1),%al
     74d:	3c 24                	cmp    $0x24,%al
     74f:	75 0d                	jne    75e <DetectDrives+0x16e>
     751:	8b 55 f4             	mov    0xfffffff4(%ebp),%edx
     754:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
     757:	83 c0 30             	add    $0x30,%eax
     75a:	88 44 15 c0          	mov    %al,0xffffffc0(%ebp,%edx,1)
     75e:	ff 45 f4             	incl   0xfffffff4(%ebp)
     761:	83 ec 0c             	sub    $0xc,%esp
     764:	68 00 00 00 00       	push   $0x0
     769:	e8 fc ff ff ff       	call   76a <DetectDrives+0x17a>
     76e:	83 c4 10             	add    $0x10,%esp
     771:	3b 45 f4             	cmp    0xfffffff4(%ebp),%eax
     774:	7f d0                	jg     746 <DetectDrives+0x156>
     776:	8b 55 e0             	mov    0xffffffe0(%ebp),%edx
     779:	89 d0                	mov    %edx,%eax
     77b:	c1 e0 04             	shl    $0x4,%eax
     77e:	01 d0                	add    %edx,%eax
     780:	c1 e0 02             	shl    $0x2,%eax
     783:	01 d0                	add    %edx,%eax
     785:	c1 e0 03             	shl    $0x3,%eax
     788:	8d 88 00 00 00 00    	lea    0x0(%eax),%ecx
     78e:	8d 95 b8 fd ff ff    	lea    0xfffffdb8(%ebp),%edx
     794:	b8 28 02 00 00       	mov    $0x228,%eax
     799:	83 ec 04             	sub    $0x4,%esp
     79c:	50                   	push   %eax
     79d:	52                   	push   %edx
     79e:	51                   	push   %ecx
     79f:	e8 fc ff ff ff       	call   7a0 <DetectDrives+0x1b0>
     7a4:	83 c4 10             	add    $0x10,%esp
     7a7:	ff 45 e0             	incl   0xffffffe0(%ebp)
     7aa:	ff 45 f0             	incl   0xfffffff0(%ebp)
     7ad:	ff 45 e8             	incl   0xffffffe8(%ebp)
     7b0:	83 7d e8 01          	cmpl   $0x1,0xffffffe8(%ebp)
     7b4:	0f 8e 71 fe ff ff    	jle    62b <DetectDrives+0x3b>
     7ba:	ff 45 ec             	incl   0xffffffec(%ebp)
     7bd:	83 7d ec 01          	cmpl   $0x1,0xffffffec(%ebp)
     7c1:	0f 8e 58 fe ff ff    	jle    61f <DetectDrives+0x2f>
     7c7:	ff 45 e4             	incl   0xffffffe4(%ebp)
     7ca:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
     7cd:	83 f8 03             	cmp    $0x3,%eax
     7d0:	0f 86 3d fe ff ff    	jbe    613 <DetectDrives+0x23>
     7d6:	c9                   	leave  
     7d7:	c3                   	ret    

000007d8 <ata_open>:
     7d8:	55                   	push   %ebp
     7d9:	89 e5                	mov    %esp,%ebp
     7db:	83 ec 18             	sub    $0x18,%esp
     7de:	c7 45 f8 00 00 00 00 	movl   $0x0,0xfffffff8(%ebp)
     7e5:	eb 51                	jmp    838 <ata_open+0x60>
     7e7:	8b 55 f8             	mov    0xfffffff8(%ebp),%edx
     7ea:	89 d0                	mov    %edx,%eax
     7ec:	c1 e0 04             	shl    $0x4,%eax
     7ef:	01 d0                	add    %edx,%eax
     7f1:	c1 e0 02             	shl    $0x2,%eax
     7f4:	01 d0                	add    %edx,%eax
     7f6:	c1 e0 03             	shl    $0x3,%eax
     7f9:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
     7ff:	85 c0                	test   %eax,%eax
     801:	74 32                	je     835 <ata_open+0x5d>
     803:	8b 55 f8             	mov    0xfffffff8(%ebp),%edx
     806:	89 d0                	mov    %edx,%eax
     808:	c1 e0 04             	shl    $0x4,%eax
     80b:	01 d0                	add    %edx,%eax
     80d:	c1 e0 02             	shl    $0x2,%eax
     810:	01 d0                	add    %edx,%eax
     812:	c1 e0 03             	shl    $0x3,%eax
     815:	05 00 02 00 00       	add    $0x200,%eax
     81a:	05 00 00 00 00       	add    $0x0,%eax
     81f:	83 c0 08             	add    $0x8,%eax
     822:	83 ec 08             	sub    $0x8,%esp
     825:	ff 75 08             	pushl  0x8(%ebp)
     828:	50                   	push   %eax
     829:	e8 fc ff ff ff       	call   82a <ata_open+0x52>
     82e:	83 c4 10             	add    $0x10,%esp
     831:	85 c0                	test   %eax,%eax
     833:	74 09                	je     83e <ata_open+0x66>
     835:	ff 45 f8             	incl   0xfffffff8(%ebp)
     838:	83 7d f8 0f          	cmpl   $0xf,0xfffffff8(%ebp)
     83c:	7e a9                	jle    7e7 <ata_open+0xf>
     83e:	83 7d f8 10          	cmpl   $0x10,0xfffffff8(%ebp)
     842:	75 0c                	jne    850 <ata_open+0x78>
     844:	c7 45 ec ff ff ff ff 	movl   $0xffffffff,0xffffffec(%ebp)
     84b:	e9 88 00 00 00       	jmp    8d8 <ata_open+0x100>
     850:	c7 45 fc 00 00 00 00 	movl   $0x0,0xfffffffc(%ebp)
     857:	eb 19                	jmp    872 <ata_open+0x9a>
     859:	8b 55 fc             	mov    0xfffffffc(%ebp),%edx
     85c:	89 d0                	mov    %edx,%eax
     85e:	01 c0                	add    %eax,%eax
     860:	01 d0                	add    %edx,%eax
     862:	c1 e0 02             	shl    $0x2,%eax
     865:	8b 80 08 00 00 00    	mov    0x8(%eax),%eax
     86b:	85 c0                	test   %eax,%eax
     86d:	75 0c                	jne    87b <ata_open+0xa3>
     86f:	ff 45 fc             	incl   0xfffffffc(%ebp)
     872:	81 7d fc ff 03 00 00 	cmpl   $0x3ff,0xfffffffc(%ebp)
     879:	7e de                	jle    859 <ata_open+0x81>
     87b:	81 7d fc 00 04 00 00 	cmpl   $0x400,0xfffffffc(%ebp)
     882:	75 09                	jne    88d <ata_open+0xb5>
     884:	c7 45 ec ff ff ff ff 	movl   $0xffffffff,0xffffffec(%ebp)
     88b:	eb 4b                	jmp    8d8 <ata_open+0x100>
     88d:	8b 55 fc             	mov    0xfffffffc(%ebp),%edx
     890:	89 d0                	mov    %edx,%eax
     892:	01 c0                	add    %eax,%eax
     894:	01 d0                	add    %edx,%eax
     896:	c1 e0 02             	shl    $0x2,%eax
     899:	c7 80 08 00 00 00 00 	movl   $0x0,0x8(%eax)
     8a0:	00 00 00 
     8a3:	8b 55 fc             	mov    0xfffffffc(%ebp),%edx
     8a6:	89 d0                	mov    %edx,%eax
     8a8:	01 c0                	add    %eax,%eax
     8aa:	01 d0                	add    %edx,%eax
     8ac:	8d 14 85 00 00 00 00 	lea    0x0(,%eax,4),%edx
     8b3:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
     8b6:	89 82 00 00 00 00    	mov    %eax,0x0(%edx)
     8bc:	8b 55 fc             	mov    0xfffffffc(%ebp),%edx
     8bf:	89 d0                	mov    %edx,%eax
     8c1:	01 c0                	add    %eax,%eax
     8c3:	01 d0                	add    %edx,%eax
     8c5:	c1 e0 02             	shl    $0x2,%eax
     8c8:	c7 80 04 00 00 00 00 	movl   $0x0,0x4(%eax)
     8cf:	00 00 00 
     8d2:	8b 45 fc             	mov    0xfffffffc(%ebp),%eax
     8d5:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
     8d8:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
     8db:	c9                   	leave  
     8dc:	c3                   	ret    

000008dd <ata_read>:
     8dd:	55                   	push   %ebp
     8de:	89 e5                	mov    %esp,%ebp
     8e0:	53                   	push   %ebx
     8e1:	83 ec 14             	sub    $0x14,%esp
     8e4:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
     8e8:	78 4b                	js     935 <ata_read+0x58>
     8ea:	81 7d 08 ff 03 00 00 	cmpl   $0x3ff,0x8(%ebp)
     8f1:	7f 42                	jg     935 <ata_read+0x58>
     8f3:	8b 55 08             	mov    0x8(%ebp),%edx
     8f6:	89 d0                	mov    %edx,%eax
     8f8:	01 c0                	add    %eax,%eax
     8fa:	01 d0                	add    %edx,%eax
     8fc:	c1 e0 02             	shl    $0x2,%eax
     8ff:	8b 80 08 00 00 00    	mov    0x8(%eax),%eax
     905:	83 f8 01             	cmp    $0x1,%eax
     908:	74 2b                	je     935 <ata_read+0x58>
     90a:	8b 55 08             	mov    0x8(%ebp),%edx
     90d:	89 d0                	mov    %edx,%eax
     90f:	01 c0                	add    %eax,%eax
     911:	01 d0                	add    %edx,%eax
     913:	c1 e0 02             	shl    $0x2,%eax
     916:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     91c:	89 d0                	mov    %edx,%eax
     91e:	c1 e0 04             	shl    $0x4,%eax
     921:	01 d0                	add    %edx,%eax
     923:	c1 e0 02             	shl    $0x2,%eax
     926:	01 d0                	add    %edx,%eax
     928:	c1 e0 03             	shl    $0x3,%eax
     92b:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
     931:	85 c0                	test   %eax,%eax
     933:	75 0c                	jne    941 <ata_read+0x64>
     935:	c7 45 e8 ff ff ff ff 	movl   $0xffffffff,0xffffffe8(%ebp)
     93c:	e9 78 01 00 00       	jmp    ab9 <ata_read+0x1dc>
     941:	83 ec 0c             	sub    $0xc,%esp
     944:	68 09 00 00 00       	push   $0x9
     949:	e8 fc ff ff ff       	call   94a <ata_read+0x6d>
     94e:	83 c4 10             	add    $0x10,%esp
     951:	c7 45 f4 00 00 00 00 	movl   $0x0,0xfffffff4(%ebp)
     958:	8b 55 08             	mov    0x8(%ebp),%edx
     95b:	89 d0                	mov    %edx,%eax
     95d:	01 c0                	add    %eax,%eax
     95f:	01 d0                	add    %edx,%eax
     961:	c1 e0 02             	shl    $0x2,%eax
     964:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     96a:	89 d0                	mov    %edx,%eax
     96c:	c1 e0 04             	shl    $0x4,%eax
     96f:	01 d0                	add    %edx,%eax
     971:	c1 e0 02             	shl    $0x2,%eax
     974:	01 d0                	add    %edx,%eax
     976:	c1 e0 03             	shl    $0x3,%eax
     979:	8a 80 66 00 00 00    	mov    0x66(%eax),%al
     97f:	84 c0                	test   %al,%al
     981:	75 09                	jne    98c <ata_read+0xaf>
     983:	c7 45 f4 01 00 00 00 	movl   $0x1,0xfffffff4(%ebp)
     98a:	eb 2f                	jmp    9bb <ata_read+0xde>
     98c:	8b 55 08             	mov    0x8(%ebp),%edx
     98f:	89 d0                	mov    %edx,%eax
     991:	01 c0                	add    %eax,%eax
     993:	01 d0                	add    %edx,%eax
     995:	c1 e0 02             	shl    $0x2,%eax
     998:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     99e:	89 d0                	mov    %edx,%eax
     9a0:	c1 e0 04             	shl    $0x4,%eax
     9a3:	01 d0                	add    %edx,%eax
     9a5:	c1 e0 02             	shl    $0x2,%eax
     9a8:	01 d0                	add    %edx,%eax
     9aa:	c1 e0 03             	shl    $0x3,%eax
     9ad:	8a 80 66 00 00 00    	mov    0x66(%eax),%al
     9b3:	25 ff 00 00 00       	and    $0xff,%eax
     9b8:	89 45 f4             	mov    %eax,0xfffffff4(%ebp)
     9bb:	8b 45 10             	mov    0x10(%ebp),%eax
     9be:	3b 45 f4             	cmp    0xfffffff4(%ebp),%eax
     9c1:	7d 06                	jge    9c9 <ata_read+0xec>
     9c3:	8b 45 10             	mov    0x10(%ebp),%eax
     9c6:	89 45 f4             	mov    %eax,0xfffffff4(%ebp)
     9c9:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
     9d0:	e9 99 00 00 00       	jmp    a6e <ata_read+0x191>
     9d5:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     9d8:	8b 55 10             	mov    0x10(%ebp),%edx
     9db:	89 d1                	mov    %edx,%ecx
     9dd:	29 c1                	sub    %eax,%ecx
     9df:	89 c8                	mov    %ecx,%eax
     9e1:	3b 45 f4             	cmp    0xfffffff4(%ebp),%eax
     9e4:	7d 0f                	jge    9f5 <ata_read+0x118>
     9e6:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     9e9:	8b 55 10             	mov    0x10(%ebp),%edx
     9ec:	89 d1                	mov    %edx,%ecx
     9ee:	29 c1                	sub    %eax,%ecx
     9f0:	89 c8                	mov    %ecx,%eax
     9f2:	89 45 f4             	mov    %eax,0xfffffff4(%ebp)
     9f5:	8b 55 08             	mov    0x8(%ebp),%edx
     9f8:	89 d0                	mov    %edx,%eax
     9fa:	01 c0                	add    %eax,%eax
     9fc:	01 d0                	add    %edx,%eax
     9fe:	c1 e0 02             	shl    $0x2,%eax
     a01:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     a07:	89 d0                	mov    %edx,%eax
     a09:	c1 e0 04             	shl    $0x4,%eax
     a0c:	01 d0                	add    %edx,%eax
     a0e:	c1 e0 02             	shl    $0x2,%eax
     a11:	01 d0                	add    %edx,%eax
     a13:	c1 e0 03             	shl    $0x3,%eax
     a16:	66 8b 80 12 00 00 00 	mov    0x12(%eax),%ax
     a1d:	25 ff ff 00 00       	and    $0xffff,%eax
     a22:	0f af 45 f0          	imul   0xfffffff0(%ebp),%eax
     a26:	89 c3                	mov    %eax,%ebx
     a28:	03 5d 0c             	add    0xc(%ebp),%ebx
     a2b:	8b 55 08             	mov    0x8(%ebp),%edx
     a2e:	89 d0                	mov    %edx,%eax
     a30:	01 c0                	add    %eax,%eax
     a32:	01 d0                	add    %edx,%eax
     a34:	c1 e0 02             	shl    $0x2,%eax
     a37:	8b 90 04 00 00 00    	mov    0x4(%eax),%edx
     a3d:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     a40:	8d 04 02             	lea    (%edx,%eax,1),%eax
     a43:	89 c1                	mov    %eax,%ecx
     a45:	8b 55 08             	mov    0x8(%ebp),%edx
     a48:	89 d0                	mov    %edx,%eax
     a4a:	01 c0                	add    %eax,%eax
     a4c:	01 d0                	add    %edx,%eax
     a4e:	c1 e0 02             	shl    $0x2,%eax
     a51:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
     a57:	53                   	push   %ebx
     a58:	51                   	push   %ecx
     a59:	ff 75 f4             	pushl  0xfffffff4(%ebp)
     a5c:	50                   	push   %eax
     a5d:	e8 fc ff ff ff       	call   a5e <ata_read+0x181>
     a62:	83 c4 10             	add    $0x10,%esp
     a65:	89 45 f8             	mov    %eax,0xfffffff8(%ebp)
     a68:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
     a6b:	01 45 f0             	add    %eax,0xfffffff0(%ebp)
     a6e:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     a71:	3b 45 10             	cmp    0x10(%ebp),%eax
     a74:	0f 8c 5b ff ff ff    	jl     9d5 <ata_read+0xf8>
     a7a:	8b 4d 08             	mov    0x8(%ebp),%ecx
     a7d:	8b 55 08             	mov    0x8(%ebp),%edx
     a80:	89 d0                	mov    %edx,%eax
     a82:	01 c0                	add    %eax,%eax
     a84:	01 d0                	add    %edx,%eax
     a86:	c1 e0 02             	shl    $0x2,%eax
     a89:	8b 90 04 00 00 00    	mov    0x4(%eax),%edx
     a8f:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     a92:	01 c2                	add    %eax,%edx
     a94:	89 c8                	mov    %ecx,%eax
     a96:	01 c0                	add    %eax,%eax
     a98:	01 c8                	add    %ecx,%eax
     a9a:	c1 e0 02             	shl    $0x2,%eax
     a9d:	89 90 04 00 00 00    	mov    %edx,0x4(%eax)
     aa3:	83 ec 0c             	sub    $0xc,%esp
     aa6:	68 13 00 00 00       	push   $0x13
     aab:	e8 fc ff ff ff       	call   aac <ata_read+0x1cf>
     ab0:	83 c4 10             	add    $0x10,%esp
     ab3:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     ab6:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
     ab9:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
     abc:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
     abf:	c9                   	leave  
     ac0:	c3                   	ret    

00000ac1 <ata_write>:
     ac1:	55                   	push   %ebp
     ac2:	89 e5                	mov    %esp,%ebp
     ac4:	53                   	push   %ebx
     ac5:	83 ec 14             	sub    $0x14,%esp
     ac8:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
     acc:	78 4b                	js     b19 <ata_write+0x58>
     ace:	81 7d 08 ff 03 00 00 	cmpl   $0x3ff,0x8(%ebp)
     ad5:	7f 42                	jg     b19 <ata_write+0x58>
     ad7:	8b 55 08             	mov    0x8(%ebp),%edx
     ada:	89 d0                	mov    %edx,%eax
     adc:	01 c0                	add    %eax,%eax
     ade:	01 d0                	add    %edx,%eax
     ae0:	c1 e0 02             	shl    $0x2,%eax
     ae3:	8b 80 08 00 00 00    	mov    0x8(%eax),%eax
     ae9:	83 f8 01             	cmp    $0x1,%eax
     aec:	74 2b                	je     b19 <ata_write+0x58>
     aee:	8b 55 08             	mov    0x8(%ebp),%edx
     af1:	89 d0                	mov    %edx,%eax
     af3:	01 c0                	add    %eax,%eax
     af5:	01 d0                	add    %edx,%eax
     af7:	c1 e0 02             	shl    $0x2,%eax
     afa:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     b00:	89 d0                	mov    %edx,%eax
     b02:	c1 e0 04             	shl    $0x4,%eax
     b05:	01 d0                	add    %edx,%eax
     b07:	c1 e0 02             	shl    $0x2,%eax
     b0a:	01 d0                	add    %edx,%eax
     b0c:	c1 e0 03             	shl    $0x3,%eax
     b0f:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
     b15:	85 c0                	test   %eax,%eax
     b17:	75 0c                	jne    b25 <ata_write+0x64>
     b19:	c7 45 e8 ff ff ff ff 	movl   $0xffffffff,0xffffffe8(%ebp)
     b20:	e9 58 01 00 00       	jmp    c7d <ata_write+0x1bc>
     b25:	c7 45 f4 00 00 00 00 	movl   $0x0,0xfffffff4(%ebp)
     b2c:	8b 55 08             	mov    0x8(%ebp),%edx
     b2f:	89 d0                	mov    %edx,%eax
     b31:	01 c0                	add    %eax,%eax
     b33:	01 d0                	add    %edx,%eax
     b35:	c1 e0 02             	shl    $0x2,%eax
     b38:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     b3e:	89 d0                	mov    %edx,%eax
     b40:	c1 e0 04             	shl    $0x4,%eax
     b43:	01 d0                	add    %edx,%eax
     b45:	c1 e0 02             	shl    $0x2,%eax
     b48:	01 d0                	add    %edx,%eax
     b4a:	c1 e0 03             	shl    $0x3,%eax
     b4d:	8a 80 66 00 00 00    	mov    0x66(%eax),%al
     b53:	84 c0                	test   %al,%al
     b55:	75 09                	jne    b60 <ata_write+0x9f>
     b57:	c7 45 f4 01 00 00 00 	movl   $0x1,0xfffffff4(%ebp)
     b5e:	eb 2f                	jmp    b8f <ata_write+0xce>
     b60:	8b 55 08             	mov    0x8(%ebp),%edx
     b63:	89 d0                	mov    %edx,%eax
     b65:	01 c0                	add    %eax,%eax
     b67:	01 d0                	add    %edx,%eax
     b69:	c1 e0 02             	shl    $0x2,%eax
     b6c:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     b72:	89 d0                	mov    %edx,%eax
     b74:	c1 e0 04             	shl    $0x4,%eax
     b77:	01 d0                	add    %edx,%eax
     b79:	c1 e0 02             	shl    $0x2,%eax
     b7c:	01 d0                	add    %edx,%eax
     b7e:	c1 e0 03             	shl    $0x3,%eax
     b81:	8a 80 66 00 00 00    	mov    0x66(%eax),%al
     b87:	25 ff 00 00 00       	and    $0xff,%eax
     b8c:	89 45 f4             	mov    %eax,0xfffffff4(%ebp)
     b8f:	8b 45 10             	mov    0x10(%ebp),%eax
     b92:	3b 45 f4             	cmp    0xfffffff4(%ebp),%eax
     b95:	7d 06                	jge    b9d <ata_write+0xdc>
     b97:	8b 45 10             	mov    0x10(%ebp),%eax
     b9a:	89 45 f4             	mov    %eax,0xfffffff4(%ebp)
     b9d:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
     ba4:	e9 99 00 00 00       	jmp    c42 <ata_write+0x181>
     ba9:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     bac:	8b 55 10             	mov    0x10(%ebp),%edx
     baf:	89 d1                	mov    %edx,%ecx
     bb1:	29 c1                	sub    %eax,%ecx
     bb3:	89 c8                	mov    %ecx,%eax
     bb5:	3b 45 f4             	cmp    0xfffffff4(%ebp),%eax
     bb8:	7d 0f                	jge    bc9 <ata_write+0x108>
     bba:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     bbd:	8b 55 10             	mov    0x10(%ebp),%edx
     bc0:	89 d1                	mov    %edx,%ecx
     bc2:	29 c1                	sub    %eax,%ecx
     bc4:	89 c8                	mov    %ecx,%eax
     bc6:	89 45 f4             	mov    %eax,0xfffffff4(%ebp)
     bc9:	8b 55 08             	mov    0x8(%ebp),%edx
     bcc:	89 d0                	mov    %edx,%eax
     bce:	01 c0                	add    %eax,%eax
     bd0:	01 d0                	add    %edx,%eax
     bd2:	c1 e0 02             	shl    $0x2,%eax
     bd5:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     bdb:	89 d0                	mov    %edx,%eax
     bdd:	c1 e0 04             	shl    $0x4,%eax
     be0:	01 d0                	add    %edx,%eax
     be2:	c1 e0 02             	shl    $0x2,%eax
     be5:	01 d0                	add    %edx,%eax
     be7:	c1 e0 03             	shl    $0x3,%eax
     bea:	66 8b 80 12 00 00 00 	mov    0x12(%eax),%ax
     bf1:	25 ff ff 00 00       	and    $0xffff,%eax
     bf6:	0f af 45 f0          	imul   0xfffffff0(%ebp),%eax
     bfa:	89 c3                	mov    %eax,%ebx
     bfc:	03 5d 0c             	add    0xc(%ebp),%ebx
     bff:	8b 55 08             	mov    0x8(%ebp),%edx
     c02:	89 d0                	mov    %edx,%eax
     c04:	01 c0                	add    %eax,%eax
     c06:	01 d0                	add    %edx,%eax
     c08:	c1 e0 02             	shl    $0x2,%eax
     c0b:	8b 90 04 00 00 00    	mov    0x4(%eax),%edx
     c11:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     c14:	8d 04 02             	lea    (%edx,%eax,1),%eax
     c17:	89 c1                	mov    %eax,%ecx
     c19:	8b 55 08             	mov    0x8(%ebp),%edx
     c1c:	89 d0                	mov    %edx,%eax
     c1e:	01 c0                	add    %eax,%eax
     c20:	01 d0                	add    %edx,%eax
     c22:	c1 e0 02             	shl    $0x2,%eax
     c25:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
     c2b:	53                   	push   %ebx
     c2c:	51                   	push   %ecx
     c2d:	ff 75 f4             	pushl  0xfffffff4(%ebp)
     c30:	50                   	push   %eax
     c31:	e8 fc ff ff ff       	call   c32 <ata_write+0x171>
     c36:	83 c4 10             	add    $0x10,%esp
     c39:	89 45 f8             	mov    %eax,0xfffffff8(%ebp)
     c3c:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
     c3f:	01 45 f0             	add    %eax,0xfffffff0(%ebp)
     c42:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     c45:	3b 45 10             	cmp    0x10(%ebp),%eax
     c48:	0f 8c 5b ff ff ff    	jl     ba9 <ata_write+0xe8>
     c4e:	8b 4d 08             	mov    0x8(%ebp),%ecx
     c51:	8b 55 08             	mov    0x8(%ebp),%edx
     c54:	89 d0                	mov    %edx,%eax
     c56:	01 c0                	add    %eax,%eax
     c58:	01 d0                	add    %edx,%eax
     c5a:	c1 e0 02             	shl    $0x2,%eax
     c5d:	8b 90 04 00 00 00    	mov    0x4(%eax),%edx
     c63:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     c66:	01 c2                	add    %eax,%edx
     c68:	89 c8                	mov    %ecx,%eax
     c6a:	01 c0                	add    %eax,%eax
     c6c:	01 c8                	add    %ecx,%eax
     c6e:	c1 e0 02             	shl    $0x2,%eax
     c71:	89 90 04 00 00 00    	mov    %edx,0x4(%eax)
     c77:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
     c7a:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
     c7d:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
     c80:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
     c83:	c9                   	leave  
     c84:	c3                   	ret    

00000c85 <ata_seek>:
     c85:	55                   	push   %ebp
     c86:	89 e5                	mov    %esp,%ebp
     c88:	53                   	push   %ebx
     c89:	83 ec 18             	sub    $0x18,%esp
     c8c:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
     c90:	78 4b                	js     cdd <ata_seek+0x58>
     c92:	81 7d 08 ff 03 00 00 	cmpl   $0x3ff,0x8(%ebp)
     c99:	7f 42                	jg     cdd <ata_seek+0x58>
     c9b:	8b 55 08             	mov    0x8(%ebp),%edx
     c9e:	89 d0                	mov    %edx,%eax
     ca0:	01 c0                	add    %eax,%eax
     ca2:	01 d0                	add    %edx,%eax
     ca4:	c1 e0 02             	shl    $0x2,%eax
     ca7:	8b 80 08 00 00 00    	mov    0x8(%eax),%eax
     cad:	83 f8 01             	cmp    $0x1,%eax
     cb0:	74 2b                	je     cdd <ata_seek+0x58>
     cb2:	8b 55 08             	mov    0x8(%ebp),%edx
     cb5:	89 d0                	mov    %edx,%eax
     cb7:	01 c0                	add    %eax,%eax
     cb9:	01 d0                	add    %edx,%eax
     cbb:	c1 e0 02             	shl    $0x2,%eax
     cbe:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     cc4:	89 d0                	mov    %edx,%eax
     cc6:	c1 e0 04             	shl    $0x4,%eax
     cc9:	01 d0                	add    %edx,%eax
     ccb:	c1 e0 02             	shl    $0x2,%eax
     cce:	01 d0                	add    %edx,%eax
     cd0:	c1 e0 03             	shl    $0x3,%eax
     cd3:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
     cd9:	85 c0                	test   %eax,%eax
     cdb:	75 0c                	jne    ce9 <ata_seek+0x64>
     cdd:	c7 45 e8 ff ff ff ff 	movl   $0xffffffff,0xffffffe8(%ebp)
     ce4:	e9 2b 01 00 00       	jmp    e14 <ata_seek+0x18f>
     ce9:	8b 55 08             	mov    0x8(%ebp),%edx
     cec:	89 d0                	mov    %edx,%eax
     cee:	01 c0                	add    %eax,%eax
     cf0:	01 d0                	add    %edx,%eax
     cf2:	c1 e0 02             	shl    $0x2,%eax
     cf5:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     cfb:	89 d0                	mov    %edx,%eax
     cfd:	c1 e0 04             	shl    $0x4,%eax
     d00:	01 d0                	add    %edx,%eax
     d02:	c1 e0 02             	shl    $0x2,%eax
     d05:	01 d0                	add    %edx,%eax
     d07:	c1 e0 03             	shl    $0x3,%eax
     d0a:	8b 80 80 00 00 00    	mov    0x80(%eax),%eax
     d10:	89 45 f8             	mov    %eax,0xfffffff8(%ebp)
     d13:	8b 45 10             	mov    0x10(%ebp),%eax
     d16:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
     d19:	83 7d e4 01          	cmpl   $0x1,0xffffffe4(%ebp)
     d1d:	74 41                	je     d60 <ata_seek+0xdb>
     d1f:	83 7d e4 02          	cmpl   $0x2,0xffffffe4(%ebp)
     d23:	0f 84 92 00 00 00    	je     dbb <ata_seek+0x136>
     d29:	83 7d e4 00          	cmpl   $0x0,0xffffffe4(%ebp)
     d2d:	74 05                	je     d34 <ata_seek+0xaf>
     d2f:	e9 c7 00 00 00       	jmp    dfb <ata_seek+0x176>
     d34:	8b 45 0c             	mov    0xc(%ebp),%eax
     d37:	3b 45 f8             	cmp    0xfffffff8(%ebp),%eax
     d3a:	76 06                	jbe    d42 <ata_seek+0xbd>
     d3c:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
     d3f:	89 45 0c             	mov    %eax,0xc(%ebp)
     d42:	8b 55 08             	mov    0x8(%ebp),%edx
     d45:	89 d0                	mov    %edx,%eax
     d47:	01 c0                	add    %eax,%eax
     d49:	01 d0                	add    %edx,%eax
     d4b:	8d 14 85 00 00 00 00 	lea    0x0(,%eax,4),%edx
     d52:	8b 45 0c             	mov    0xc(%ebp),%eax
     d55:	89 82 04 00 00 00    	mov    %eax,0x4(%edx)
     d5b:	e9 9b 00 00 00       	jmp    dfb <ata_seek+0x176>
     d60:	8b 4d 08             	mov    0x8(%ebp),%ecx
     d63:	8b 55 08             	mov    0x8(%ebp),%edx
     d66:	89 d0                	mov    %edx,%eax
     d68:	01 c0                	add    %eax,%eax
     d6a:	01 d0                	add    %edx,%eax
     d6c:	c1 e0 02             	shl    $0x2,%eax
     d6f:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     d75:	89 c2                	mov    %eax,%edx
     d77:	03 55 0c             	add    0xc(%ebp),%edx
     d7a:	89 c8                	mov    %ecx,%eax
     d7c:	01 c0                	add    %eax,%eax
     d7e:	01 c8                	add    %ecx,%eax
     d80:	c1 e0 02             	shl    $0x2,%eax
     d83:	89 90 04 00 00 00    	mov    %edx,0x4(%eax)
     d89:	8b 55 08             	mov    0x8(%ebp),%edx
     d8c:	89 d0                	mov    %edx,%eax
     d8e:	01 c0                	add    %eax,%eax
     d90:	01 d0                	add    %edx,%eax
     d92:	c1 e0 02             	shl    $0x2,%eax
     d95:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     d9b:	3b 45 f8             	cmp    0xfffffff8(%ebp),%eax
     d9e:	76 5b                	jbe    dfb <ata_seek+0x176>
     da0:	8b 55 08             	mov    0x8(%ebp),%edx
     da3:	89 d0                	mov    %edx,%eax
     da5:	01 c0                	add    %eax,%eax
     da7:	01 d0                	add    %edx,%eax
     da9:	8d 14 85 00 00 00 00 	lea    0x0(,%eax,4),%edx
     db0:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
     db3:	89 82 04 00 00 00    	mov    %eax,0x4(%edx)
     db9:	eb 40                	jmp    dfb <ata_seek+0x176>
     dbb:	8b 4d 08             	mov    0x8(%ebp),%ecx
     dbe:	8b 55 0c             	mov    0xc(%ebp),%edx
     dc1:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
     dc4:	89 c3                	mov    %eax,%ebx
     dc6:	29 d3                	sub    %edx,%ebx
     dc8:	89 da                	mov    %ebx,%edx
     dca:	89 c8                	mov    %ecx,%eax
     dcc:	01 c0                	add    %eax,%eax
     dce:	01 c8                	add    %ecx,%eax
     dd0:	c1 e0 02             	shl    $0x2,%eax
     dd3:	89 90 04 00 00 00    	mov    %edx,0x4(%eax)
     dd9:	8b 45 0c             	mov    0xc(%ebp),%eax
     ddc:	3b 45 f8             	cmp    0xfffffff8(%ebp),%eax
     ddf:	76 1a                	jbe    dfb <ata_seek+0x176>
     de1:	8b 45 08             	mov    0x8(%ebp),%eax
     de4:	89 c2                	mov    %eax,%edx
     de6:	01 d2                	add    %edx,%edx
     de8:	01 c2                	add    %eax,%edx
     dea:	8d 04 95 00 00 00 00 	lea    0x0(,%edx,4),%eax
     df1:	c7 80 04 00 00 00 00 	movl   $0x0,0x4(%eax)
     df8:	00 00 00 
     dfb:	8b 45 08             	mov    0x8(%ebp),%eax
     dfe:	89 c2                	mov    %eax,%edx
     e00:	01 d2                	add    %edx,%edx
     e02:	01 c2                	add    %eax,%edx
     e04:	8d 04 95 00 00 00 00 	lea    0x0(,%edx,4),%eax
     e0b:	8b 80 04 00 00 00    	mov    0x4(%eax),%eax
     e11:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
     e14:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
     e17:	83 c4 18             	add    $0x18,%esp
     e1a:	5b                   	pop    %ebx
     e1b:	5d                   	pop    %ebp
     e1c:	c3                   	ret    

00000e1d <ata_ioctl>:
     e1d:	55                   	push   %ebp
     e1e:	89 e5                	mov    %esp,%ebp
     e20:	b8 00 00 00 00       	mov    $0x0,%eax
     e25:	5d                   	pop    %ebp
     e26:	c3                   	ret    

00000e27 <ata_stat>:
     e27:	55                   	push   %ebp
     e28:	89 e5                	mov    %esp,%ebp
     e2a:	83 ec 04             	sub    $0x4,%esp
     e2d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
     e31:	78 4b                	js     e7e <ata_stat+0x57>
     e33:	81 7d 08 ff 03 00 00 	cmpl   $0x3ff,0x8(%ebp)
     e3a:	7f 42                	jg     e7e <ata_stat+0x57>
     e3c:	8b 55 08             	mov    0x8(%ebp),%edx
     e3f:	89 d0                	mov    %edx,%eax
     e41:	01 c0                	add    %eax,%eax
     e43:	01 d0                	add    %edx,%eax
     e45:	c1 e0 02             	shl    $0x2,%eax
     e48:	8b 80 08 00 00 00    	mov    0x8(%eax),%eax
     e4e:	83 f8 01             	cmp    $0x1,%eax
     e51:	74 2b                	je     e7e <ata_stat+0x57>
     e53:	8b 55 08             	mov    0x8(%ebp),%edx
     e56:	89 d0                	mov    %edx,%eax
     e58:	01 c0                	add    %eax,%eax
     e5a:	01 d0                	add    %edx,%eax
     e5c:	c1 e0 02             	shl    $0x2,%eax
     e5f:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     e65:	89 d0                	mov    %edx,%eax
     e67:	c1 e0 04             	shl    $0x4,%eax
     e6a:	01 d0                	add    %edx,%eax
     e6c:	c1 e0 02             	shl    $0x2,%eax
     e6f:	01 d0                	add    %edx,%eax
     e71:	c1 e0 03             	shl    $0x3,%eax
     e74:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
     e7a:	85 c0                	test   %eax,%eax
     e7c:	75 0c                	jne    e8a <ata_stat+0x63>
     e7e:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,0xfffffffc(%ebp)
     e85:	e9 cb 00 00 00       	jmp    f55 <ata_stat+0x12e>
     e8a:	8b 55 08             	mov    0x8(%ebp),%edx
     e8d:	89 d0                	mov    %edx,%eax
     e8f:	01 c0                	add    %eax,%eax
     e91:	01 d0                	add    %edx,%eax
     e93:	c1 e0 02             	shl    $0x2,%eax
     e96:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     e9c:	89 d0                	mov    %edx,%eax
     e9e:	c1 e0 04             	shl    $0x4,%eax
     ea1:	01 d0                	add    %edx,%eax
     ea3:	c1 e0 02             	shl    $0x2,%eax
     ea6:	01 d0                	add    %edx,%eax
     ea8:	c1 e0 03             	shl    $0x3,%eax
     eab:	8b 88 80 00 00 00    	mov    0x80(%eax),%ecx
     eb1:	8b 55 08             	mov    0x8(%ebp),%edx
     eb4:	89 d0                	mov    %edx,%eax
     eb6:	01 c0                	add    %eax,%eax
     eb8:	01 d0                	add    %edx,%eax
     eba:	c1 e0 02             	shl    $0x2,%eax
     ebd:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     ec3:	89 d0                	mov    %edx,%eax
     ec5:	c1 e0 04             	shl    $0x4,%eax
     ec8:	01 d0                	add    %edx,%eax
     eca:	c1 e0 02             	shl    $0x2,%eax
     ecd:	01 d0                	add    %edx,%eax
     ecf:	c1 e0 03             	shl    $0x3,%eax
     ed2:	66 8b 80 12 00 00 00 	mov    0x12(%eax),%ax
     ed9:	25 ff ff 00 00       	and    $0xffff,%eax
     ede:	0f af c1             	imul   %ecx,%eax
     ee1:	89 c2                	mov    %eax,%edx
     ee3:	8b 45 0c             	mov    0xc(%ebp),%eax
     ee6:	89 50 10             	mov    %edx,0x10(%eax)
     ee9:	8b 55 08             	mov    0x8(%ebp),%edx
     eec:	89 d0                	mov    %edx,%eax
     eee:	01 c0                	add    %eax,%eax
     ef0:	01 d0                	add    %edx,%eax
     ef2:	c1 e0 02             	shl    $0x2,%eax
     ef5:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     efb:	89 d0                	mov    %edx,%eax
     efd:	c1 e0 04             	shl    $0x4,%eax
     f00:	01 d0                	add    %edx,%eax
     f02:	c1 e0 02             	shl    $0x2,%eax
     f05:	01 d0                	add    %edx,%eax
     f07:	c1 e0 03             	shl    $0x3,%eax
     f0a:	66 8b 80 12 00 00 00 	mov    0x12(%eax),%ax
     f11:	89 c2                	mov    %eax,%edx
     f13:	81 e2 ff ff 00 00    	and    $0xffff,%edx
     f19:	8b 45 0c             	mov    0xc(%ebp),%eax
     f1c:	89 50 2c             	mov    %edx,0x2c(%eax)
     f1f:	8b 55 08             	mov    0x8(%ebp),%edx
     f22:	89 d0                	mov    %edx,%eax
     f24:	01 c0                	add    %eax,%eax
     f26:	01 d0                	add    %edx,%eax
     f28:	c1 e0 02             	shl    $0x2,%eax
     f2b:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     f31:	89 d0                	mov    %edx,%eax
     f33:	c1 e0 04             	shl    $0x4,%eax
     f36:	01 d0                	add    %edx,%eax
     f38:	c1 e0 02             	shl    $0x2,%eax
     f3b:	01 d0                	add    %edx,%eax
     f3d:	c1 e0 03             	shl    $0x3,%eax
     f40:	8b 80 80 00 00 00    	mov    0x80(%eax),%eax
     f46:	89 c2                	mov    %eax,%edx
     f48:	8b 45 0c             	mov    0xc(%ebp),%eax
     f4b:	89 50 30             	mov    %edx,0x30(%eax)
     f4e:	c7 45 fc 00 00 00 00 	movl   $0x0,0xfffffffc(%ebp)
     f55:	8b 45 fc             	mov    0xfffffffc(%ebp),%eax
     f58:	c9                   	leave  
     f59:	c3                   	ret    

00000f5a <ata_close>:
     f5a:	55                   	push   %ebp
     f5b:	89 e5                	mov    %esp,%ebp
     f5d:	83 ec 04             	sub    $0x4,%esp
     f60:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
     f64:	78 4b                	js     fb1 <ata_close+0x57>
     f66:	81 7d 08 ff 03 00 00 	cmpl   $0x3ff,0x8(%ebp)
     f6d:	7f 42                	jg     fb1 <ata_close+0x57>
     f6f:	8b 55 08             	mov    0x8(%ebp),%edx
     f72:	89 d0                	mov    %edx,%eax
     f74:	01 c0                	add    %eax,%eax
     f76:	01 d0                	add    %edx,%eax
     f78:	c1 e0 02             	shl    $0x2,%eax
     f7b:	8b 80 08 00 00 00    	mov    0x8(%eax),%eax
     f81:	83 f8 01             	cmp    $0x1,%eax
     f84:	74 2b                	je     fb1 <ata_close+0x57>
     f86:	8b 55 08             	mov    0x8(%ebp),%edx
     f89:	89 d0                	mov    %edx,%eax
     f8b:	01 c0                	add    %eax,%eax
     f8d:	01 d0                	add    %edx,%eax
     f8f:	c1 e0 02             	shl    $0x2,%eax
     f92:	8b 90 00 00 00 00    	mov    0x0(%eax),%edx
     f98:	89 d0                	mov    %edx,%eax
     f9a:	c1 e0 04             	shl    $0x4,%eax
     f9d:	01 d0                	add    %edx,%eax
     f9f:	c1 e0 02             	shl    $0x2,%eax
     fa2:	01 d0                	add    %edx,%eax
     fa4:	c1 e0 03             	shl    $0x3,%eax
     fa7:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
     fad:	85 c0                	test   %eax,%eax
     faf:	75 09                	jne    fba <ata_close+0x60>
     fb1:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,0xfffffffc(%ebp)
     fb8:	eb 21                	jmp    fdb <ata_close+0x81>
     fba:	8b 45 08             	mov    0x8(%ebp),%eax
     fbd:	89 c2                	mov    %eax,%edx
     fbf:	01 d2                	add    %edx,%edx
     fc1:	01 c2                	add    %eax,%edx
     fc3:	8d 04 95 00 00 00 00 	lea    0x0(,%edx,4),%eax
     fca:	c7 80 08 00 00 00 01 	movl   $0x1,0x8(%eax)
     fd1:	00 00 00 
     fd4:	c7 45 fc 00 00 00 00 	movl   $0x0,0xfffffffc(%ebp)
     fdb:	8b 45 fc             	mov    0xfffffffc(%ebp),%eax
     fde:	c9                   	leave  
     fdf:	c3                   	ret    

00000fe0 <dmain>:
     fe0:	55                   	push   %ebp
     fe1:	89 e5                	mov    %esp,%ebp
     fe3:	57                   	push   %edi
     fe4:	56                   	push   %esi
     fe5:	53                   	push   %ebx
     fe6:	83 ec 2c             	sub    $0x2c,%esp
     fe9:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
     ff0:	eb 1f                	jmp    1011 <dmain+0x31>
     ff2:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
     ff5:	89 d0                	mov    %edx,%eax
     ff7:	c1 e0 04             	shl    $0x4,%eax
     ffa:	01 d0                	add    %edx,%eax
     ffc:	c1 e0 02             	shl    $0x2,%eax
     fff:	01 d0                	add    %edx,%eax
    1001:	c1 e0 03             	shl    $0x3,%eax
    1004:	c7 80 00 00 00 00 00 	movl   $0x0,0x0(%eax)
    100b:	00 00 00 
    100e:	ff 45 f0             	incl   0xfffffff0(%ebp)
    1011:	83 7d f0 0f          	cmpl   $0xf,0xfffffff0(%ebp)
    1015:	7e db                	jle    ff2 <dmain+0x12>
    1017:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
    101e:	eb 1d                	jmp    103d <dmain+0x5d>
    1020:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
    1023:	89 c2                	mov    %eax,%edx
    1025:	01 d2                	add    %edx,%edx
    1027:	01 c2                	add    %eax,%edx
    1029:	8d 04 95 00 00 00 00 	lea    0x0(,%edx,4),%eax
    1030:	c7 80 08 00 00 00 01 	movl   $0x1,0x8(%eax)
    1037:	00 00 00 
    103a:	ff 45 f0             	incl   0xfffffff0(%ebp)
    103d:	81 7d f0 ff 03 00 00 	cmpl   $0x3ff,0xfffffff0(%ebp)
    1044:	7e da                	jle    1020 <dmain+0x40>
    1046:	e8 fc ff ff ff       	call   1047 <dmain+0x67>
    104b:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
    1052:	e9 b4 00 00 00       	jmp    110b <dmain+0x12b>
    1057:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
    105a:	89 d0                	mov    %edx,%eax
    105c:	c1 e0 04             	shl    $0x4,%eax
    105f:	01 d0                	add    %edx,%eax
    1061:	c1 e0 02             	shl    $0x2,%eax
    1064:	01 d0                	add    %edx,%eax
    1066:	c1 e0 03             	shl    $0x3,%eax
    1069:	8b 80 00 00 00 00    	mov    0x0(%eax),%eax
    106f:	85 c0                	test   %eax,%eax
    1071:	0f 84 91 00 00 00    	je     1108 <dmain+0x128>
    1077:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
    107a:	89 d0                	mov    %edx,%eax
    107c:	c1 e0 04             	shl    $0x4,%eax
    107f:	01 d0                	add    %edx,%eax
    1081:	c1 e0 02             	shl    $0x2,%eax
    1084:	01 d0                	add    %edx,%eax
    1086:	c1 e0 03             	shl    $0x3,%eax
    1089:	66 8b 80 12 00 00 00 	mov    0x12(%eax),%ax
    1090:	89 c1                	mov    %eax,%ecx
    1092:	81 e1 ff ff 00 00    	and    $0xffff,%ecx
    1098:	b8 00 00 00 00       	mov    $0x0,%eax
    109d:	89 c3                	mov    %eax,%ebx
    109f:	b8 00 00 00 00       	mov    $0x0,%eax
    10a4:	89 c6                	mov    %eax,%esi
    10a6:	b8 00 00 00 00       	mov    $0x0,%eax
    10ab:	89 c7                	mov    %eax,%edi
    10ad:	b8 00 00 00 00       	mov    $0x0,%eax
    10b2:	89 45 d4             	mov    %eax,0xffffffd4(%ebp)
    10b5:	b8 00 00 00 00       	mov    $0x0,%eax
    10ba:	89 45 d8             	mov    %eax,0xffffffd8(%ebp)
    10bd:	b8 00 00 00 00       	mov    $0x0,%eax
    10c2:	89 45 dc             	mov    %eax,0xffffffdc(%ebp)
    10c5:	b8 00 00 00 00       	mov    $0x0,%eax
    10ca:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
    10cd:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
    10d0:	89 d0                	mov    %edx,%eax
    10d2:	c1 e0 04             	shl    $0x4,%eax
    10d5:	01 d0                	add    %edx,%eax
    10d7:	c1 e0 02             	shl    $0x2,%eax
    10da:	01 d0                	add    %edx,%eax
    10dc:	c1 e0 03             	shl    $0x3,%eax
    10df:	05 00 02 00 00       	add    $0x200,%eax
    10e4:	05 00 00 00 00       	add    $0x0,%eax
    10e9:	83 c0 08             	add    $0x8,%eax
    10ec:	83 ec 0c             	sub    $0xc,%esp
    10ef:	51                   	push   %ecx
    10f0:	53                   	push   %ebx
    10f1:	56                   	push   %esi
    10f2:	57                   	push   %edi
    10f3:	ff 75 d4             	pushl  0xffffffd4(%ebp)
    10f6:	ff 75 d8             	pushl  0xffffffd8(%ebp)
    10f9:	ff 75 dc             	pushl  0xffffffdc(%ebp)
    10fc:	ff 75 e0             	pushl  0xffffffe0(%ebp)
    10ff:	50                   	push   %eax
    1100:	e8 fc ff ff ff       	call   1101 <dmain+0x121>
    1105:	83 c4 30             	add    $0x30,%esp
    1108:	ff 45 f0             	incl   0xfffffff0(%ebp)
    110b:	83 7d f0 0f          	cmpl   $0xf,0xfffffff0(%ebp)
    110f:	0f 8e 42 ff ff ff    	jle    1057 <dmain+0x77>
    1115:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
    1118:	5b                   	pop    %ebx
    1119:	5e                   	pop    %esi
    111a:	5f                   	pop    %edi
    111b:	5d                   	pop    %ebp
    111c:	c3                   	ret    
